package com.blog4j.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.blog4j.api.vo.UserInfoVo;
import com.blog4j.user.entity.FansEntity;
import com.blog4j.user.vo.req.FansListReqVo;
import com.blog4j.user.vo.req.FollowReqVo;
import com.blog4j.user.vo.resp.FansRespVo;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @author 98k灬
 * @version v1.0.0
 * @Description : 功能描述
 * @Create on : 2024/8/1 13:34
 **/
public interface FansService extends IService<FansEntity> {
    /**
     * 根据用户ID获取用户的粉丝信息列表
     *
     * @param reqVo 请求信息
     * @return 用户的粉丝信息列表
     */
    PageInfo<FansRespVo> pageList(FansListReqVo reqVo);

    /**
     * 根据用户ID获取粉丝列表
     *
     * @param userId 用户ID
     * @return 粉丝列表
     */
    List<UserInfoVo> getFansListByUserId(String userId);

    /**
     * 检查userid2是否是userid1的粉丝
     *
     * @param userId1 用户1
     * @param userId2 用户2
     * @return 是否
     */
    boolean checkIsFans(String userId1, String userId2);

    /**
     * 用户关注或取消关注
     *
     * @param reqVo 请求
     */
    void follow(FollowReqVo reqVo);
}
